/**
 * @author 陈泰来
 * @version V1.0
 * @Project echo-java-base
 * @Title 软引用
 * @Description *
 * @Package base.quote.soft
 * @date 2020/10/25 9:36 下午
 * @Copyright:学如逆水行舟，不进则退 .
 */
package base.quote.soft;

import java.lang.ref.SoftReference;

public class SoftR {
    public static void main(String[] args) {
        //软引用对象 堆中开辟10M空间
        SoftReference<byte[]> sr = new SoftReference<>(new byte[1024 * 1024 * 10]);
        //获取
        System.out.println(sr.get());
        //GC
        System.gc();
        //线程等待gc完成
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //GC后 在此获取软引用对象
        System.out.println(sr.get());

        //重新创建一个强引用
        byte[] strong = new byte[1024 * 1024 * 19];

        //重新获取软引用
        System.out.println(sr.get());
    }
}
